2. Cytokine ~ groups
P-value is obtained by ANCOVA test adjusting for age.
P-values were not adjusted for multiple comparisons.
options(qwraps2_markup = "markdown")
summary_template1 =
list("Visit" =
list("Visit 1" = ~ n_perc0(visit == "Visit 1", na_rm = T),
"Visit 2" = ~ n_perc0(visit == "Visit 2", na_rm = T)))
summary_template2 =
list("Status" =
list("Controls" = ~ n_perc0(status == "NC", na_rm = T),
"Seroconverters" = ~ n_perc0(status == "SC", na_rm = T)))
2.1 NC: visit 1 vs. visit 2
df = df_cytokine %>% filter(status == "nc")
df$visit = recode(df$visit, `v1` = "Visit 1", `v2` = "Visit 2")
tab = df %>% summary_table(summary_template1)
print(tab, rtitle = "NC: visit 1 vs. visit 2")
| Visit |
  |
| Â Â Visit 1 |
156 (67) |
| Â Â Visit 2 |
77 (33) |
df_fig = df %>% group_by(visit) %>%
summarise(il6 = mean(il6, na.rm = TRUE),
cd163 = mean(cd163, na.rm = TRUE),
ip10 = mean(ip10, na.rm = TRUE),
crp = mean(crp, na.rm = TRUE),
lbp = mean(lbp, na.rm = TRUE),
cd14 = mean(cd14, na.rm = TRUE)) %>%
gather(key = "cytokine", value = "value", il6:cd14)
df_long = df %>% gather(key = "cytokine", value = "value", il6:cd14)
df_p = df_long %>% group_by(cytokine) %>%
do(fit = anova_test(data = ., formula = value ~ visit + age)) %>%
summarise(p = fit$p[1])
df_jitter = df %>%
dplyr::select(visit, il6:cd14) %>%
gather(key = "cytokine", value = "value", -visit) %>%
group_by(cytokine) %>%
filter(value >= quantile(value, 0.1, na.rm = TRUE) &
value <= quantile(value, 0.9, na.rm = TRUE))
df_ann = df_jitter %>% group_by(cytokine) %>%
summarise(x = 1.1, y = ifelse(mean(value, na.rm = TRUE) > 0,
max(value, na.rm = TRUE),
0.2 * abs(mean(value, na.rm = TRUE))),
y_max = ifelse(mean(value, na.rm = TRUE) > 0,
1.3 * max(value, na.rm = TRUE),
0.5 * abs(mean(value, na.rm = TRUE))),
visit = "Visit 1") %>%
mutate(p = df_p$p,
label = paste0("p = ", signif(p, 2)))
df_jitter$cytokine = recode(df_jitter$cytokine,
il6 = "IL-6", cd163 = "sCD163", ip10 = "IP-10",
crp = "CRP", lbp = "LBP", cd14 = "sCD14")
df_fig$cytokine = recode(df_fig$cytokine,
il6 = "IL-6", cd163 = "sCD163", ip10 = "IP-10",
crp = "CRP", lbp = "LBP", cd14 = "sCD14")
df_ann$cytokine = recode(df_ann$cytokine,
il6 = "IL-6", cd163 = "sCD163", ip10 = "IP-10",
crp = "CRP", lbp = "LBP", cd14 = "sCD14")
p = ggplot(data = df_fig, aes(x = visit, y = value)) +
geom_col(color = "black", aes(fill = visit)) +
geom_jitter(position = position_jitter(0.2), data = df_jitter,
alpha = 0.5, size = 0.8) +
facet_wrap(.~cytokine, scales = "free") +
labs(x = NULL, y = NULL) +
labs(title = "NC: visit 1 vs. visit 2") +
scale_fill_brewer(palette = "Accent", name = NULL) +
geom_blank(data = df_ann, aes(y = y_max)) +
geom_label(data = df_ann, aes(x = x, y = y, label = label),
size = 4, vjust = -0.5, hjust = 0, color = "black") +
theme_bw() +
theme(axis.text.x = element_blank(),
axis.ticks.x = element_blank(),
strip.background = element_rect(fill = "white"),
legend.position = "bottom",
plot.title = element_text(hjust = 0.5))
p

2.2 SC: visit 1 vs. visit 2
df = df_cytokine %>% filter(status == "sc")
df$visit = recode(df$visit, `v1` = "Visit 1", `v2` = "Visit 2")
tab = df %>% summary_table(summary_template1)
print(tab, rtitle = "SC: visit 1 vs. visit 2")
| Visit |
  |
| Â Â Visit 1 |
87 (60) |
| Â Â Visit 2 |
57 (40) |
df_fig = df %>% group_by(visit) %>%
summarise(il6 = mean(il6, na.rm = TRUE),
cd163 = mean(cd163, na.rm = TRUE),
ip10 = mean(ip10, na.rm = TRUE),
crp = mean(crp, na.rm = TRUE),
lbp = mean(lbp, na.rm = TRUE),
cd14 = mean(cd14, na.rm = TRUE)) %>%
gather(key = "cytokine", value = "value", il6:cd14)
df_long = df %>% gather(key = "cytokine", value = "value", il6:cd14)
df_p = df_long %>% group_by(cytokine) %>%
do(fit = anova_test(data = ., formula = value ~ visit + age)) %>%
summarise(p = fit$p[1])
df_jitter = df %>%
dplyr::select(visit, il6:cd14) %>%
gather(key = "cytokine", value = "value", -visit) %>%
group_by(cytokine) %>%
filter(value >= quantile(value, 0.1, na.rm = TRUE) &
value <= quantile(value, 0.9, na.rm = TRUE))
df_ann = df_jitter %>% group_by(cytokine) %>%
summarise(x = 1.1, y = ifelse(mean(value, na.rm = TRUE) > 0,
max(value, na.rm = TRUE),
0.2 * abs(mean(value, na.rm = TRUE))),
y_max = ifelse(mean(value, na.rm = TRUE) > 0,
1.3 * max(value, na.rm = TRUE),
0.5 * abs(mean(value, na.rm = TRUE))),
visit = "Visit 1") %>%
mutate(p = df_p$p,
label = paste0("p = ", signif(p, 2)))
df_jitter$cytokine = recode(df_jitter$cytokine,
il6 = "IL-6", cd163 = "sCD163", ip10 = "IP-10",
crp = "CRP", lbp = "LBP", cd14 = "sCD14")
df_fig$cytokine = recode(df_fig$cytokine,
il6 = "IL-6", cd163 = "sCD163", ip10 = "IP-10",
crp = "CRP", lbp = "LBP", cd14 = "sCD14")
df_ann$cytokine = recode(df_ann$cytokine,
il6 = "IL-6", cd163 = "sCD163", ip10 = "IP-10",
crp = "CRP", lbp = "LBP", cd14 = "sCD14")
p7.1 = ggplot(data = df_fig, aes(x = visit, y = value)) +
geom_col(color = "black", aes(fill = visit)) +
geom_jitter(position = position_jitter(0.2), data = df_jitter,
alpha = 0.5, size = 0.8) +
facet_wrap(.~cytokine, scales = "free") +
labs(x = NULL, y = NULL) +
labs(title = "SC: visit 1 vs. visit 2") +
scale_fill_brewer(palette = "Accent", name = NULL) +
geom_blank(data = df_ann, aes(y = y_max)) +
geom_label(data = df_ann, aes(x = x, y = y, label = label),
size = 4, vjust = -0.5, hjust = 0, color = "black") +
theme_bw() +
theme(axis.text.x = element_blank(),
axis.ticks.x = element_blank(),
strip.background = element_rect(fill = "white"),
legend.position = "bottom",
plot.title = element_text(hjust = 0.5))
p7.1

2.3 Visit 1: NC vs. SC
df = df_cytokine %>% filter(visit == "v1")
df$status = recode(df$status, `nc` = "NC", `sc` = "SC")
tab = df %>% summary_table(summary_template2)
print(tab, rtitle = "Visit 1: NC vs. SC")
| Status |
  |
| Â Â Controls |
156 (64) |
| Â Â Seroconverters |
87 (36) |
df_fig = df %>% group_by(status) %>%
summarise(il6 = mean(il6, na.rm = TRUE),
cd163 = mean(cd163, na.rm = TRUE),
ip10 = mean(ip10, na.rm = TRUE),
crp = mean(crp, na.rm = TRUE),
lbp = mean(lbp, na.rm = TRUE),
cd14 = mean(cd14, na.rm = TRUE)) %>%
gather(key = "cytokine", value = "value", il6:cd14)
df_long = df %>% gather(key = "cytokine", value = "value", il6:cd14)
df_p = df_long %>% group_by(cytokine) %>%
do(fit = anova_test(data = ., formula = value ~ status + age)) %>%
summarise(p = fit$p[1])
df_jitter = df %>%
dplyr::select(status, il6:cd14) %>%
gather(key = "cytokine", value = "value", -status) %>%
group_by(cytokine) %>%
filter(value >= quantile(value, 0.1, na.rm = TRUE) &
value <= quantile(value, 0.9, na.rm = TRUE))
df_ann = df_jitter %>% group_by(cytokine) %>%
summarise(x = 1.1, y = ifelse(mean(value, na.rm = TRUE) > 0,
max(value, na.rm = TRUE),
0.2 * abs(mean(value, na.rm = TRUE))),
y_max = ifelse(mean(value, na.rm = TRUE) > 0,
1.3 * max(value, na.rm = TRUE),
0.5 * abs(mean(value, na.rm = TRUE))),
status = "NC") %>%
mutate(p = df_p$p,
label = paste0("p = ", signif(p, 2)))
df_jitter$cytokine = recode(df_jitter$cytokine,
il6 = "IL-6", cd163 = "sCD163", ip10 = "IP-10",
crp = "CRP", lbp = "LBP", cd14 = "sCD14")
df_fig$cytokine = recode(df_fig$cytokine,
il6 = "IL-6", cd163 = "sCD163", ip10 = "IP-10",
crp = "CRP", lbp = "LBP", cd14 = "sCD14")
df_ann$cytokine = recode(df_ann$cytokine,
il6 = "IL-6", cd163 = "sCD163", ip10 = "IP-10",
crp = "CRP", lbp = "LBP", cd14 = "sCD14")
p7.2 = ggplot(data = df_fig, aes(x = status, y = value)) +
geom_col(color = "black", aes(fill = status)) +
geom_jitter(position = position_jitter(0.2), data = df_jitter,
alpha = 0.5, size = 0.8) +
facet_wrap(.~cytokine, scales = "free") +
labs(x = NULL, y = NULL) +
labs(title = "Visit 1: NC vs. SC") +
scale_fill_discrete(name = NULL) +
geom_blank(data = df_ann, aes(y = y_max)) +
geom_label(data = df_ann, aes(x = x, y = y, label = label),
size = 4, vjust = -0.5, hjust = 0, color = "black") +
theme_bw() +
theme(axis.text.x = element_blank(),
axis.ticks.x = element_blank(),
strip.background = element_rect(fill = "white"),
legend.position = "bottom",
plot.title = element_text(hjust = 0.5))
p7.2

p7 = ggarrange(p7.2, p7.1, ncol = 2, nrow = 1, labels = c("A", "B"))
ggsave(plot = p7, "../images/main/fig7.pdf", height = 5.5, width = 12)
ggsave(plot = p7, "../images/main/fig7.jpeg", height = 5.5, width = 12, dpi = 300)
2.4 Visit 2: NC vs. SC
df = df_cytokine %>% filter(visit == "v2")
df$status = recode(df$status, `nc` = "NC", `sc` = "SC")
tab = df %>% summary_table(summary_template2)
print(tab, rtitle = "Visit 2: NC vs. SC")
| Status |
  |
| Â Â Controls |
77 (57) |
| Â Â Seroconverters |
57 (43) |
df_fig = df %>% group_by(status) %>%
summarise(il6 = mean(il6, na.rm = TRUE),
cd163 = mean(cd163, na.rm = TRUE),
ip10 = mean(ip10, na.rm = TRUE),
crp = mean(crp, na.rm = TRUE),
lbp = mean(lbp, na.rm = TRUE),
cd14 = mean(cd14, na.rm = TRUE)) %>%
gather(key = "cytokine", value = "value", il6:cd14)
df_long = df %>% gather(key = "cytokine", value = "value", il6:cd14)
df_p = df_long %>% group_by(cytokine) %>%
do(fit = anova_test(data = ., formula = value ~ status + age)) %>%
summarise(p = fit$p[1])
df_jitter = df %>%
dplyr::select(status, il6:cd14) %>%
gather(key = "cytokine", value = "value", -status) %>%
group_by(cytokine) %>%
filter(value >= quantile(value, 0.1, na.rm = TRUE) &
value <= quantile(value, 0.9, na.rm = TRUE))
df_ann = df_jitter %>% group_by(cytokine) %>%
summarise(x = 1.1, y = ifelse(mean(value, na.rm = TRUE) > 0,
max(value, na.rm = TRUE),
0.2 * abs(mean(value, na.rm = TRUE))),
y_max = ifelse(mean(value, na.rm = TRUE) > 0,
1.3 * max(value, na.rm = TRUE),
0.5 * abs(mean(value, na.rm = TRUE))),
status = "NC") %>%
mutate(p = df_p$p,
label = paste0("p = ", signif(p, 2)))
df_jitter$cytokine = recode(df_jitter$cytokine,
il6 = "IL-6", cd163 = "sCD163", ip10 = "IP-10",
crp = "CRP", lbp = "LBP", cd14 = "sCD14")
df_fig$cytokine = recode(df_fig$cytokine,
il6 = "IL-6", cd163 = "sCD163", ip10 = "IP-10",
crp = "CRP", lbp = "LBP", cd14 = "sCD14")
df_ann$cytokine = recode(df_ann$cytokine,
il6 = "IL-6", cd163 = "sCD163", ip10 = "IP-10",
crp = "CRP", lbp = "LBP", cd14 = "sCD14")
p = ggplot(data = df_fig, aes(x = status, y = value)) +
geom_col(color = "black", aes(fill = status)) +
geom_jitter(position = position_jitter(0.2), data = df_jitter,
alpha = 0.5, size = 0.8) +
facet_wrap(.~cytokine, scales = "free") +
labs(x = NULL, y = NULL) +
labs(title = "Visit 2: NC vs. SC") +
scale_fill_discrete(name = NULL) +
geom_blank(data = df_ann, aes(y = y_max)) +
geom_label(data = df_ann, aes(x = x, y = y, label = label),
size = 4, vjust = -0.5, hjust = 0, color = "black") +
theme_bw() +
theme(axis.text.x = element_blank(),
axis.ticks.x = element_blank(),
strip.background = element_rect(fill = "white"),
legend.position = "bottom",
plot.title = element_text(hjust = 0.5))
p

3. Log2(%CD4/%CD8) ~ cytokine
P-values were obtained from linear models adjusting for age.
P-values were not adjusted for multiple comparisons.
df_merge = df_cytokine %>%
dplyr::select(subjid, visit, status, il6:cd14, age, vload, leu3p, leu2p) %>%
mutate(vload = log10(vload), cd4 = leu3p, cd8 = leu2p, ratio = log(cd4/cd8, base = 2))
lm_eqn = function(m){
a = unname(coef(m))[1]
b = unname(coef(m))[2]
c = unname(coef(m))[3]
p_val = summary(m)$coef[2, "Pr(>|t|)"]
b = ifelse(sign(b) >= 0,
paste0(" + ", format(b, digits = 2)),
paste0(" - ", format(-b, digits = 2)))
c = ifelse(sign(c) >= 0,
paste0(" + ", format(c, digits = 2)),
paste0(" - ", format(-c, digits = 2)))
eq = substitute(paste(italic(y) == a, b, italic(x), c, italic(age), ", ", italic(p) == p_val),
list(a = format(a, digits = 2), b = b, c = c,
p_val = format(p_val, digits = 2)))
return(as.character(as.expression(eq)))
}
3.1 NC: visit 1 vs. visit 2
df = df_merge %>% filter(status == "nc")
df$visit = recode(df$visit, `v1` = "Visit 1", `v2` = "Visit 2")
# Visit 1
df1 = df %>% filter(visit == "Visit 1")
df_fig = df1 %>% gather(key = "cytokine", value = "value", il6:cd14)
df_fig$cytokine = recode(df_fig$cytokine,
il6 = "IL-6", cd163 = "sCD163", ip10 = "IP-10",
crp = "CRP", lbp = "LBP", cd14 = "sCD14")
df_lm = df_fig %>% group_by(cytokine) %>%
do(fit = lm(formula = ratio ~ value + age, data = .)) %>%
summarise(eq = lm_eqn(m = fit))
df_ann = df_fig %>% group_by(cytokine) %>%
summarise(x = ifelse(mean(value, na.rm = TRUE) > 0,
0.5 * max(value, na.rm = TRUE),
0.2 * abs(mean(value, na.rm = TRUE))),
y = 2,
y_max = 2.2,
value = 0) %>%
mutate(eq = df_lm$eq)
df_ann$cytokine = recode(df_ann$cytokine,
il6 = "IL-6", cd163 = "sCD163", ip10 = "IP-10",
crp = "CRP", lbp = "LBP", cd14 = "sCD14")
ps7.1 = ggplot(data = df_fig, aes(x = value, y = ratio)) +
geom_point(alpha = 0.8, color = "#7FC97F") +
geom_smooth(method = "lm", se = TRUE, color = "skyblue",
formula = y ~ x) +
facet_wrap(.~cytokine, scales = "free") +
labs(x = "Cytokine",
y = expression(paste(log[2], "(", CD4^{"+"}, "/", CD8^{"+"}, ")")),
title = "NC: Visit 1") +
geom_blank(data = df_ann, aes(y = y_max)) +
geom_text(data = df_ann, aes(x = x, y = y, label = eq), size = 3,
parse = TRUE, inherit.aes = FALSE) +
theme_bw() +
theme(strip.background = element_rect(fill = "white"),
legend.position = "bottom",
plot.title = element_text(hjust = 0.5))
# Visit 2
df2 = df %>% filter(visit == "Visit 2")
df_fig = df2 %>% gather(key = "cytokine", value = "value", il6:cd14)
df_fig$cytokine = recode(df_fig$cytokine,
il6 = "IL-6", cd163 = "sCD163", ip10 = "IP-10",
crp = "CRP", lbp = "LBP", cd14 = "sCD14")
df_lm = df_fig %>% group_by(cytokine) %>%
do(fit = lm(formula = ratio ~ value + age, data = .)) %>%
summarise(eq = lm_eqn(m = fit))
df_ann = df_fig %>% group_by(cytokine) %>%
summarise(x = ifelse(mean(value, na.rm = TRUE) > 0,
0.5 * max(value, na.rm = TRUE),
0.2 * abs(mean(value, na.rm = TRUE))),
y = 2,
y_max = 2.2,
value = 0) %>%
mutate(eq = df_lm$eq)
df_ann$cytokine = recode(df_ann$cytokine,
il6 = "IL-6", cd163 = "sCD163", ip10 = "IP-10",
crp = "CRP", lbp = "LBP", cd14 = "sCD14")
ps7.2 = ggplot(data = df_fig, aes(x = value, y = ratio)) +
geom_point(alpha = 0.8, color = "#BEAED4") +
geom_smooth(method = "lm", se = TRUE, color = "skyblue",
formula = y ~ x) +
facet_wrap(.~cytokine, scales = "free") +
labs(x = "Cytokine",
y = expression(paste(log[2], "(", CD4^{"+"}, "/", CD8^{"+"}, ")")),
title = "NC: Visit 2") +
geom_blank(data = df_ann, aes(y = y_max)) +
geom_text(data = df_ann, aes(x = x, y = y, label = eq), size = 3,
parse = TRUE, inherit.aes = FALSE) +
theme_bw() +
theme(strip.background = element_rect(fill = "white"),
legend.position = "bottom",
plot.title = element_text(hjust = 0.5))
ps7 = ggarrange(ps7.1, ps7.2, ncol = 1, nrow = 2, labels = c("A", "B"),
legend = "bottom", common.legend = TRUE)
ps7

ggsave("../images/supplementary/fig_s7.pdf", height = 10, width = 9)
ggsave("../images/supplementary/fig_s7.jpeg", height = 10, width = 9, dpi = 300)
3.2 SC: visit 1 vs. visit 2
df = df_merge %>% filter(status == "sc")
df$visit = recode(df$visit, `v1` = "Visit 1", `v2` = "Visit 2")
# Visit 1
df1 = df %>% filter(visit == "Visit 1")
df_fig = df1 %>% gather(key = "cytokine", value = "value", il6:cd14)
df_fig$cytokine = recode(df_fig$cytokine,
il6 = "IL-6", cd163 = "sCD163", ip10 = "IP-10",
crp = "CRP", lbp = "LBP", cd14 = "sCD14")
df_lm = df_fig %>% group_by(cytokine) %>%
do(fit = lm(formula = ratio ~ value + age, data = .)) %>%
summarise(eq = lm_eqn(m = fit))
df_ann = df_fig %>% group_by(cytokine) %>%
summarise(x = ifelse(mean(value, na.rm = TRUE) > 0,
0.5 * max(value, na.rm = TRUE),
0.2 * abs(mean(value, na.rm = TRUE))),
y = 2,
y_max = 2.2,
value = 0) %>%
mutate(eq = df_lm$eq)
df_ann$cytokine = recode(df_ann$cytokine,
il6 = "IL-6", cd163 = "sCD163", ip10 = "IP-10",
crp = "CRP", lbp = "LBP", cd14 = "sCD14")
p8.1 = ggplot(data = df_fig, aes(x = value, y = ratio)) +
geom_point(alpha = 0.8, color = "#7FC97F") +
geom_smooth(method = "lm", se = TRUE, color = "skyblue",
formula = y ~ x) +
facet_wrap(.~cytokine, scales = "free") +
labs(x = "Cytokine",
y = expression(paste(log[2], "(", CD4^{"+"}, "/", CD8^{"+"}, ")")),
title = "SC: Visit 1") +
geom_blank(data = df_ann, aes(y = y_max)) +
geom_text(data = df_ann, aes(x = x, y = y, label = eq), size = 3,
parse = TRUE, inherit.aes = FALSE) +
theme_bw() +
theme(strip.background = element_rect(fill = "white"),
legend.position = "bottom",
plot.title = element_text(hjust = 0.5))
# Visit 2
df2 = df %>% filter(visit == "Visit 2")
df_fig = df2 %>% gather(key = "cytokine", value = "value", il6:cd14)
df_fig$cytokine = recode(df_fig$cytokine,
il6 = "IL-6", cd163 = "sCD163", ip10 = "IP-10",
crp = "CRP", lbp = "LBP", cd14 = "sCD14")
df_lm = df_fig %>% group_by(cytokine) %>%
do(fit = lm(formula = ratio ~ value + age, data = .)) %>%
summarise(eq = lm_eqn(m = fit))
df_ann = df_fig %>% group_by(cytokine) %>%
summarise(x = ifelse(mean(value, na.rm = TRUE) > 0,
0.5 * max(value, na.rm = TRUE),
0.2 * abs(mean(value, na.rm = TRUE))),
y = 2,
y_max = 2.2,
value = 0) %>%
mutate(eq = df_lm$eq)
df_ann$cytokine = recode(df_ann$cytokine,
il6 = "IL-6", cd163 = "sCD163", ip10 = "IP-10",
crp = "CRP", lbp = "LBP", cd14 = "sCD14")
p8.2 = ggplot(data = df_fig, aes(x = value, y = ratio)) +
geom_point(alpha = 0.8, color = "#BEAED4") +
geom_smooth(method = "lm", se = TRUE, color = "skyblue",
formula = y ~ x) +
facet_wrap(.~cytokine, scales = "free") +
labs(x = "Cytokine",
y = expression(paste(log[2], "(", CD4^{"+"}, "/", CD8^{"+"}, ")")),
title = "SC: Visit 2") +
geom_blank(data = df_ann, aes(y = y_max)) +
geom_text(data = df_ann, aes(x = x, y = y, label = eq), size = 3,
parse = TRUE, inherit.aes = FALSE) +
theme_bw() +
theme(strip.background = element_rect(fill = "white"),
legend.position = "bottom",
plot.title = element_text(hjust = 0.5))
p8 = ggarrange(p8.1, p8.2, ncol = 1, nrow = 2, labels = c("A", "B"),
legend = "bottom", common.legend = TRUE)
p8

ggsave("../images/main/fig8.pdf", height = 10, width = 9)
ggsave("../images/main/fig8.jpeg", height = 10, width = 9, dpi = 300)
3.3 Visit 1: NC vs. SC
df = df_merge %>% filter(visit == "v1")
df$status = recode(df$status, `nc` = "NC", `sc` = "SC")
# Controls
df1 = df %>% filter(status == "NC")
df_fig = df1 %>% gather(key = "cytokine", value = "value", il6:cd14)
df_fig$cytokine = recode(df_fig$cytokine,
il6 = "IL-6", cd163 = "sCD163", ip10 = "IP-10",
crp = "CRP", lbp = "LBP", cd14 = "sCD14")
df_lm = df_fig %>% group_by(cytokine) %>%
do(fit = lm(formula = ratio ~ value + age, data = .)) %>%
summarise(eq = lm_eqn(m = fit))
df_ann = df_fig %>% group_by(cytokine) %>%
summarise(x = ifelse(mean(value, na.rm = TRUE) > 0,
0.5 * max(value, na.rm = TRUE),
0.2 * abs(mean(value, na.rm = TRUE))),
y = 2,
y_max = 2.2,
value = 0) %>%
mutate(eq = df_lm$eq)
df_ann$cytokine = recode(df_ann$cytokine,
il6 = "IL-6", cd163 = "sCD163", ip10 = "IP-10",
crp = "CRP", lbp = "LBP", cd14 = "sCD14")
p1 = ggplot(data = df_fig, aes(x = value, y = ratio)) +
geom_point(alpha = 0.8, color = "#F8766D") +
geom_smooth(method = "lm", se = TRUE, color = "skyblue",
formula = y ~ x) +
facet_wrap(.~cytokine, scales = "free") +
labs(x = "Cytokine",
y = expression(paste(log[2], "(", CD4^{"+"}, "/", CD8^{"+"}, ")")),
title = "NC") +
geom_blank(data = df_ann, aes(y = y_max)) +
geom_text(data = df_ann, aes(x = x, y = y, label = eq), size = 3,
parse = TRUE, inherit.aes = FALSE) +
theme_bw() +
theme(strip.background = element_rect(fill = "white"),
legend.position = "bottom",
plot.title = element_text(hjust = 0.5))
# Seroconverters
df2 = df %>% filter(status == "SC")
df_fig = df2 %>% gather(key = "cytokine", value = "value", il6:cd14)
df_fig$cytokine = recode(df_fig$cytokine,
il6 = "IL-6", cd163 = "sCD163", ip10 = "IP-10",
crp = "CRP", lbp = "LBP", cd14 = "sCD14")
df_lm = df_fig %>% group_by(cytokine) %>%
do(fit = lm(formula = ratio ~ value + age, data = .)) %>%
summarise(eq = lm_eqn(m = fit))
df_ann = df_fig %>% group_by(cytokine) %>%
summarise(x = ifelse(mean(value, na.rm = TRUE) > 0,
0.5 * max(value, na.rm = TRUE),
0.2 * abs(mean(value, na.rm = TRUE))),
y = 2,
y_max = 2.2,
value = 0) %>%
mutate(eq = df_lm$eq)
df_ann$cytokine = recode(df_ann$cytokine,
il6 = "IL-6", cd163 = "sCD163", ip10 = "IP-10",
crp = "CRP", lbp = "LBP", cd14 = "sCD14")
p2 = ggplot(data = df_fig, aes(x = value, y = ratio)) +
geom_point(alpha = 0.8, color = "#00BFC4") +
geom_smooth(method = "lm", se = TRUE, color = "skyblue",
formula = y ~ x) +
facet_wrap(.~cytokine, scales = "free") +
labs(x = "Cytokine",
y = expression(paste(log[2], "(", CD4^{"+"}, "/", CD8^{"+"}, ")")),
title = "SC") +
geom_blank(data = df_ann, aes(y = y_max)) +
geom_text(data = df_ann, aes(x = x, y = y, label = eq), size = 3,
parse = TRUE, inherit.aes = FALSE) +
theme_bw() +
theme(strip.background = element_rect(fill = "white"),
legend.position = "bottom",
plot.title = element_text(hjust = 0.5))
p = ggarrange(p1, p2, ncol = 1, nrow = 2, legend = "bottom", common.legend = TRUE)
p

3.4 Visit 2: NC vs. SC
df = df_merge %>% filter(visit == "v2")
df$status = recode(df$status, `nc` = "NC", `sc` = "SC")
# Controls
df1 = df %>% filter(status == "NC")
df_fig = df1 %>% gather(key = "cytokine", value = "value", il6:cd14)
df_fig$cytokine = recode(df_fig$cytokine,
il6 = "IL-6", cd163 = "sCD163", ip10 = "IP-10",
crp = "CRP", lbp = "LBP", cd14 = "sCD14")
df_lm = df_fig %>% group_by(cytokine) %>%
do(fit = lm(formula = ratio ~ value + age, data = .)) %>%
summarise(eq = lm_eqn(m = fit))
df_ann = df_fig %>% group_by(cytokine) %>%
summarise(x = ifelse(mean(value, na.rm = TRUE) > 0,
0.5 * max(value, na.rm = TRUE),
0.2 * abs(mean(value, na.rm = TRUE))),
y = 2,
y_max = 2.2,
value = 0) %>%
mutate(eq = df_lm$eq)
df_ann$cytokine = recode(df_ann$cytokine,
il6 = "IL-6", cd163 = "sCD163", ip10 = "IP-10",
crp = "CRP", lbp = "LBP", cd14 = "sCD14")
p1 = ggplot(data = df_fig, aes(x = value, y = ratio)) +
geom_point(alpha = 0.8, color = "#F8766D") +
geom_smooth(method = "lm", se = TRUE, color = "skyblue",
formula = y ~ x) +
facet_wrap(.~cytokine, scales = "free") +
labs(x = "Cytokine",
y = expression(paste(log[2], "(", CD4^{"+"}, "/", CD8^{"+"}, ")")),
title = "NC") +
geom_blank(data = df_ann, aes(y = y_max)) +
geom_text(data = df_ann, aes(x = x, y = y, label = eq), size = 3,
parse = TRUE, inherit.aes = FALSE) +
theme_bw() +
theme(strip.background = element_rect(fill = "white"),
legend.position = "bottom",
plot.title = element_text(hjust = 0.5))
# Seroconverters
df2 = df %>% filter(status == "SC")
df_fig = df2 %>% gather(key = "cytokine", value = "value", il6:cd14)
df_fig$cytokine = recode(df_fig$cytokine,
il6 = "IL-6", cd163 = "sCD163", ip10 = "IP-10",
crp = "CRP", lbp = "LBP", cd14 = "sCD14")
df_lm = df_fig %>% group_by(cytokine) %>%
do(fit = lm(formula = ratio ~ value + age, data = .)) %>%
summarise(eq = lm_eqn(m = fit))
df_ann = df_fig %>% group_by(cytokine) %>%
summarise(x = ifelse(mean(value, na.rm = TRUE) > 0,
0.5 * max(value, na.rm = TRUE),
0.2 * abs(mean(value, na.rm = TRUE))),
y = 2,
y_max = 2.2,
value = 0) %>%
mutate(eq = df_lm$eq)
df_ann$cytokine = recode(df_ann$cytokine,
il6 = "IL-6", cd163 = "sCD163", ip10 = "IP-10",
crp = "CRP", lbp = "LBP", cd14 = "sCD14")
p2 = ggplot(data = df_fig, aes(x = value, y = ratio)) +
geom_point(alpha = 0.8, color = "#00BFC4") +
geom_smooth(method = "lm", se = TRUE, color = "skyblue",
formula = y ~ x) +
facet_wrap(.~cytokine, scales = "free") +
labs(x = "Cytokine",
y = expression(paste(log[2], "(", CD4^{"+"}, "/", CD8^{"+"}, ")")),
title = "SC") +
geom_blank(data = df_ann, aes(y = y_max)) +
geom_text(data = df_ann, aes(x = x, y = y, label = eq), size = 3,
parse = TRUE, inherit.aes = FALSE) +
theme_bw() +
theme(strip.background = element_rect(fill = "white"),
legend.position = "bottom",
plot.title = element_text(hjust = 0.5))
p = ggarrange(p1, p2, ncol = 1, nrow = 2, legend = "bottom", common.legend = TRUE)
p

4. Log10(viral load) ~ cytokine
For seroconverters at visit 2.
P-values were obtained from linear models adjusting for age.
P-values were not adjusted for multiple comparisons.
df = df_merge %>% filter(status == "sc", visit == "v2")
df_fig = df %>% gather(key = "cytokine", value = "value", il6:cd14)
df_fig$cytokine = recode(df_fig$cytokine,
il6 = "IL-6", cd163 = "sCD163", ip10 = "IP-10",
crp = "CRP", lbp = "LBP", cd14 = "sCD14")
df_lm = df_fig %>% group_by(cytokine) %>%
do(fit = lm(formula = vload ~ value + age, data = .)) %>%
summarise(eq = lm_eqn(m = fit))
df_ann = df_fig %>% group_by(cytokine) %>%
summarise(x = ifelse(mean(value, na.rm = TRUE) > 0,
0.5 * max(value, na.rm = TRUE),
0.2 * abs(mean(value, na.rm = TRUE))),
y = 2,
y_max = 2.2,
value = 0) %>%
mutate(eq = df_lm$eq)
p9 = ggplot(data = df_fig, aes(x = value, y = vload)) +
geom_point(alpha = 0.8, color = "#BEAED4") +
geom_smooth(method = "lm", se = TRUE, color = "skyblue",
formula = y ~ x) +
facet_wrap(.~cytokine, scales = "free") +
labs(x = "Cytokine",
y = expression(paste(log[10], "(Viral Load)")),
title = "SC: Visit 2") +
geom_blank(data = df_ann, aes(y = y_max)) +
geom_text(data = df_ann, aes(x = x, y = y, label = eq), parse = TRUE,
inherit.aes = FALSE, size = 3) +
theme_bw() +
theme(strip.background = element_rect(fill = "white"),
legend.position = "bottom",
plot.title = element_text(hjust = 0.5))
p9

ggsave("../images/main/fig9.pdf", height = 5, width = 9)
ggsave("../images/main/fig9.jpeg", height = 5, width = 9, dpi = 300)